home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / pascal / pro5 / xref.doc < prev    next >
Text File  |  1986-08-25  |  7KB  |  120 lines

  1. (*         Cross reference generator Version 2.10, 8/23/86
  2.           ------> REQUIRES TURBO PASCAL 3.0 <------
  3.      *************************************************************
  4.   This program, in its original form, was downloaded off of some bulletin
  5.   board somewhere.  At that point, it only listed a Pascal program to the
  6.   LST device and generated a cross reference of whatever reserved words
  7.   were in the list in function rsvdword, with those reserved boldfaced in
  8.   the printout.  I have made numerous improvements.
  9.  
  10.   The program now optionally lists include files within the source listing.
  11.   At any point during listing, printing may be interrupted by pressing any
  12.   key, at which point you can either resume the listing or abort.
  13.   The listing can be sent to the printer, the screen, or a disk file.
  14.   If sent to the screen, reserved appear in reverse video.  If output is
  15.   to the printer or a file, the screen displays the name of the file being
  16.   listed, with include files indented, and the line number of output.
  17.   File names supplied by the user, i.e. the file to be listed and optional
  18.   output file, are checked by function Exist , which is cool in that
  19.   it does not need to open the file.  In fact, there are several subroutines
  20.   within this program which would be useful for general purpose TURBO Pascal
  21.   programming.
  22.  
  23.   You should note that many of the new functions of XREF use TURBO features
  24.   which are specific to the IBM-PC version, such as the reverse video and
  25.   use of wherex and wherey.
  26.  
  27.   I can't think of anything else one would need in a source listing program.
  28.   If someone else can, or has any questions about the program, please contact
  29.   me at this address:
  30.  
  31.             Larry Jay Seltzer
  32.             657 Seventh Street
  33.             Lakewood, NJ  08701
  34.  
  35.   I can and I am not familiar with mailing updates of programs or ideas across
  36.   country either. So I have modified this program and willing to share it with
  37.   you. If you could get the program one BBS closer great.
  38.  
  39. * No longer will you have to deal with blank pages or lines of text wrapping
  40.   around making your programs listings hard to read. With this version of
  41.   XREF chars per line is auto sized on a page by page basis. You can spool
  42.   off odd and even pages to files. So what you say why not print the odd
  43.   pages tear off the paper feed it back in with the blank side up and print
  44.   the even pages, and presto a book.
  45.  
  46.   This program works with Gemini 10X and any compatible printer. The codes
  47.   are stored in constants contained in  the file printer.cst, so as to be
  48.   easily changeable for any printer with this capacity. There are three
  49.   basic ways to invoke the program:
  50.  
  51.              1) XREF from command line.  You will be prompted for everything.
  52.              2) XREF [pathname][File_Name].[ext]
  53.                        You will be prompted for all applicable parameters.
  54.              3) XREF [pathname][File_Name].[ext] [/ { B,C,D,E,F,I,N,O,S,T } ]
  55.                *B means delete back up versions of source files.
  56.                *C means compressed more than one procedure per page if
  57.                   they both fit on page
  58.                *D means double strike printing
  59.                *E means spool even pages to disk to print later
  60.                   File_Spec.EVE
  61.                 F means print out to disk file
  62.                 I means list include files within the main
  63.                *M means output only modified files eg ones with backup files
  64.                 N means include the cross reference
  65.                *O means spool odd pages to disk to print later  File_Spec.ODD
  66.                 S means send output to the screen instead of printer.
  67.                *T means top down program listing valid only with switch I
  68.                   the original way bottom up sucks and I claim no responsibility
  69.                   for it. I recommend top down listing.
  70.            4) future features for those who need ideas
  71.                 rewrite reserve word so that it returns an index
  72.                  this would allow you to check for var const for local vars
  73.                  they would not take up memory on big programs or clog xref listing
  74.                 keep track of procedure depth and include nesting level in print
  75.                  out listing
  76.                 add pretty print feature to just rewrite file with enhancements
  77.                   like upper/lower case reserved words
  78.                   first letters in vars capitalized
  79.                   matching begin end comments
  80.                   var declarations aligned
  81.               * auto size for page if no line exceeds 80 chars then set
  82.                   cpl to 80 else 96 else 136
  83.               * add no new page if both procedures or more fit on same page
  84.                 ADD GATHER FILES FUNCTION THAT WILL MOVE ALL THE FILES TO
  85.                   ONE DIRECTORY AND REMOVE DIRECTORIES FROM INCLUDED
  86.                   STATEMENTS
  87.                 Add xref all files in a directory modified afterì
  88.                   a certain date.ì
  89.                 Add feature to omit library procedures in print outs
  90.                     this would reduce the amount of printing.
  91. ******************************************************************************
  92.   Note that the recursive nature of the actual listing procedure (do_listing)
  93.   allows for any nesting level of INCLUDEs, even though TURBO Pascal does not
  94.   allow INCLUDEs to be nested.  So this is nice, but of questionable value.
  95. * you can create list files that are nothing more than a file of included
  96.   statements for dealing with a subject rather than programing order
  97.  
  98.   The program requires TURBO 3.0 because it uses TURBO FIBs, which have been
  99.   altered for version 3.0.  The FIB no longer contains the file's date of
  100.   creation, so the file handle is passed to DOS function call $57, which
  101.   returns the date.
  102.  
  103.   When I first use this code it was great. But then my programs were only 10
  104.   or 15 pages. now just this program is 35 + pages and I am currently working
  105.   on a terminal program that is 200 + pages that is 200 blank pages since you
  106.   can't print on both sides, that is until now!
  107.  
  108.   The above asterisked features and modular breakdown enhancements have
  109.   been add by
  110.  
  111.                        ARNO A. KARNER
  112.                        9149 5th AVE. SO.
  113.                        BLOOMINGTON MN 55420
  114.  
  115.   If you find this program of value and wish to contribute to myì
  116.   college education it will be appreciated. Please feel free toì
  117.   share this program with other people.ì
  118.  
  119. *)
  120.